package com.pearl.generator.pojo.request;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @author TangDan
 * @version 1.0
 * @since 2022/8/8
 */
@Data
public class StrategyConfigRequest {

    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("名称")
    private String name;

    @ApiModelProperty("数据源ID")
    private Long datasourceId;

    @ApiModelProperty("开启大写命名，默认值:false")
    private Integer enableCapitalMode;

    @ApiModelProperty("开启跳过视图，默认值:false")
    private Integer enableSkipView;

    @ApiModelProperty("禁用 sql 过滤，默认值:true，语法不能支持使用 sql 过滤表的话，可以考虑关闭此开关")
    private Integer disableSqlFilter;

    @ApiModelProperty("启用 schema，默认值:false，多 schema 场景的时候打开")
    private Integer enableSchema;

    @ApiModelProperty("模糊表匹配(sql 过滤)，likeTable 与 notLikeTable 只能配置一项")
    private String likeTable;

    @ApiModelProperty("模糊表排除(sql 过滤)，likeTable 与 notLikeTable 只能配置一项")
    private String notLikeTable;

    @ApiModelProperty("增加表匹配(内存过滤)，include 与 exclude 只能配置一项")
    private String addInclude;

    @ApiModelProperty("增加表排除匹配(内存过滤)，include 与 exclude 只能配置一项")
    private String addExclude;

    @ApiModelProperty("增加过滤表前缀")
    private String addTablePrefix;

    @ApiModelProperty("增加过滤表后缀")
    private String addTableSuffix;

    @ApiModelProperty("增加过滤字段前缀")
    private String addFieldPrefix;

    @ApiModelProperty("增加过滤字段后缀")
    private String addFieldSuffix;

    @ApiModelProperty("实体策略配置")
    private String entityBuilder;

    @ApiModelProperty("controller 策略配置	")
    private String controllerBuilder;

    @ApiModelProperty("mapper 策略配置")
    private String mapperBuilder;

    @ApiModelProperty("service 策略配置	")
    private String serviceBuilder;
}
